package main

//
//import (
//	"encoding/json"
//	"fmt"
//	"github.com/gin-gonic/gin"
//	"net/http"
//)
//
//func normalQuery(c *gin.Context) {
//	name := c.Query("name")
//	c.GetQuery("name")
//	c.QueryArray("name") // 获取多个相同的值
//	fmt.Println(name)
//}
//
//func normalParam(c *gin.Context) {
//	fmt.Println(c.Param("user_id"))
//}
//
//func normalForm(c *gin.Context) {
//	fmt.Println(c.PostForm("name"))
//}
//
//func bindJson(c *gin.Context, obj any) (err error) {
//	data, _ := c.GetRawData()
//	contentType := c.GetHeader("Content-type")
//	switch contentType {
//	case "application/json":
//		err := json.Unmarshal(data, &obj)
//		if err != nil {
//			fmt.Println(err)
//			return err
//		}
//	}
//	return nil
//}
//
//func _json(c *gin.Context) {
//	c.JSON(200, map[string]interface{}{
//		"success": true,
//		"msg":     "success",
//	})
//}
//
//func normalRow(c *gin.Context) {
//	type User struct {
//		Name string `json:"name"`
//		Age  int    `json:"age"`
//	}
//	var user User
//	err := bindJson(c, &user)
//	if err != nil {
//		return
//	}
//	fmt.Println(user)
//}
//
//func _jsonp(c *gin.Context) {
//	type User struct {
//		Title   string `json:"title"`
//		Desc    string `json:"desc"`
//		Content string `json:"content"`
//	}
//	a := &User{
//		Title:   "title",
//		Desc:    "desc",
//		Content: "content",
//	}
//	c.JSONP(http.StatusOK, a)
//}
//
//// 首页
//func _index(c *gin.Context) {
//	c.HTML(http.StatusOK, "index.html", gin.H{
//		"title": "这个是我的首页",
//	})
//}
//
//// 新闻页面
//func _news(c *gin.Context) {
//	news := &_Article{
//		Title: "新闻标题",
//		Desc:  "新闻描述",
//	}
//	c.HTML(http.StatusOK, "news.html", gin.H{
//		"title": "这个是我的新闻页",
//		"news":  news,
//	})
//}
//
//type _Article struct {
//	Title string `json:"title"`
//	Desc  string `json:"desc"`
//}
//
//type _User struct {
//	Username string `form:"username" json:"username"`
//	Password string `form:"password" json:"password"`
//}
//
//func main() {
//	router := gin.Default()
//	//router.GET("/query", normalQuery)
//	//router.GET("/param/:user_id", normalParam)
//	//router.POST("/form", normalForm)
//	//router.POST("/row", normalRow)
//	//router.GET("/", _json)
//	// JSONP 主要用于解决跨域的
//	//router.GET("/jsonp", _jsonp)
//
//	// 加载模板
//	router.LoadHTMLGlob("templates/*")
//	router.GET("/index", _index)
//	router.GET("/news", _news)
//
//	router.GET("/user", func(c *gin.Context) {
//		uid := c.Query("uid")
//		page := c.DefaultQuery("page", "1")
//		c.String(http.StatusOK, "page:%s,uid:%s", page, uid)
//	})
//	router.GET("/path/:id", func(c *gin.Context) {
//		id := c.Param("id")
//		c.String(http.StatusOK, "id:%s", id)
//	})
//
//	router.POST("/form", func(c *gin.Context) {
//		name := c.PostForm("name")
//		age := c.PostForm("age")
//		c.JSON(http.StatusOK, gin.H{
//			"name": name,
//			"age":  age,
//		})
//	})
//
//	router.GET("/getUserInfo", func(c *gin.Context) {
//		var user _User
//		if err := c.ShouldBind(&user); err != nil {
//			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
//		} else {
//			c.JSON(http.StatusOK, user)
//		}
//
//	})
//
//	router.POST("/postGetUserInfo", func(c *gin.Context) {
//		var user _User
//		if err := c.ShouldBind(&user); err != nil {
//			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
//		} else {
//			c.JSON(http.StatusOK, user)
//		}
//	})
//
//	router.Run(":8080")
//
//}
